﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;

namespace MvcApplication1.Controllers
{
    public class TaiKhoanController : Controller
    {
        //
        // GET: /TaiKhoan/
        [HttpGet]
        public ActionResult DangNhap()
        {
            return View();
        }

        [HttpPost]
        public ActionResult DangNhap(KhachHangModel khachHangModel)
        {
            DataClassesDataContext dataContext = new DataClassesDataContext();
            KhachHang khachHang = (from user in dataContext.KhachHangs where user.UserName.Equals(khachHangModel.tenDangNhap) select user).FirstOrDefault() ;
            if (khachHang == null)
            {
                NhanVien nhanVien = (from user in dataContext.NhanViens where user.UserName.Equals(khachHangModel.tenDangNhap) select user).FirstOrDefault();
                if (nhanVien == null)
                {
                    ViewBag.TenDangNhapMessageError = "Tên đăng nhập này không đúng";
                    return View("DangNhap");
                }

                if (!khachHangModel.matKhau.Equals(nhanVien.PassWord))
                {
                    ViewBag.MatKhauMessageError = "Mật khẩu này không đúng";
                    return View("DangNhap");
                }
                else
                {
                    if (nhanVien.Rule == "admin")
                    {
                        Session["MenuClass"] = "admin-user";
                    }
                    else
                    {
                        Session["MenuClass"] = "staff-user";
                    }
                }
                Session["tendangnhap"] = khachHangModel.tenDangNhap;
                Session["oauth"] = "logged";
                return RedirectToAction("Index", "TrangChu");
            }
            else if (!khachHangModel.matKhau.Equals(khachHang.PassWord))
            {
                ViewBag.MatKhauMessageError = "Mật khẩu này không đúng";
                return View("DangNhap");
            }
            Session["MenuClass"] = "user-menu";
            Session["tendangnhap"] = khachHangModel.tenDangNhap;
            Session["oauth"] = "logged";
            return RedirectToAction("Index", "TrangChu");
        }

        [HttpGet]
        public ActionResult DangKy()
        {
            return View();
        }

        [HttpPost]
        public ActionResult DangKy(KhachHangModel khachHangModel)
        {
            DataClassesDataContext dataContext = new DataClassesDataContext();
            var dsUserNames = from user in dataContext.KhachHangs select user.UserName;
            if (dsUserNames.Contains(khachHangModel.tenDangNhap))
            {
                ViewBag.TrungTenDangNhapMessage = "Tên đăng nhập này đã được sử dụng";
                return View("DangKy");
            }
            KhachHang khachHang = new KhachHang();
            khachHang.UserName = khachHangModel.tenDangNhap;
            khachHang.PassWord = khachHangModel.matKhau;
            khachHang.TenKH = khachHangModel.hoTen;
            khachHang.Email = khachHangModel.email;
            khachHang.SoDT = khachHangModel.soDienThoai;
            khachHang.DiaChi = khachHangModel.diaChi;
            dataContext.KhachHangs.InsertOnSubmit(khachHang);
            dataContext.SubmitChanges();
            return RedirectToAction("DangNhap", "TaiKhoan");
        }

        [HttpGet]
        public ActionResult DangXuat()
        {
            Session["MenuClass"] = "";
            Session["tendangnhap"] = "";
            Session["oauth"] = "";
            return RedirectToAction("Index", "TrangChu");
        }
    }
}
